package yl.hs.bmipfull.service.system;

import yl.hs.bmipfull.pojo.system.AreaEntity;
import yl.hs.bmipfull.service.IBaseService;
import yl.hs.bmipfull.viewmodels.PageQuery;

import java.util.List;
import java.util.Map;

/**
 * 作用:  行政区域服务层接口<br/>
 * 创建时间: 2021年05月13日 11时17分29秒 <br/>
 *
 * @author 张凯
 */

public interface IAreaService extends IBaseService {
    /**
     * 查询行政区域信息
     *
     * @param pageQuery 查询条件 {@link PageQuery}
     * @return 行政区域-List<{@link AreaEntity}>
     * @throws Exception 查询参数异常
     */
    List<AreaEntity> queryList(PageQuery pageQuery) throws Exception;

    /**
     * 查询行政区域信息
     *
     * @return 行政区域-List<{@link AreaEntity}>
     */
    List<AreaEntity> queryList();

    /**
     * 分级查询行政区域信息
     *
     * @param pageQuery 查询条件 {@link PageQuery}
     * @return 行政区域-List<{@link AreaEntity}>
     * @throws Exception 查询参数异常
     */
    List<AreaEntity> queryListFJ(PageQuery pageQuery) throws Exception;

    /**
     * 根据行政区域编号查询行政区域信息
     *
     * @param sn 编号
     * @return 行政区域-AreaEntity
     */
    AreaEntity findBySn(String sn);

    /**
     * 根据行政区域编号查询行政区域信息
     *
     * @param findByParentSN 编号
     * @return 行政区域-AreaEntity
     */
    List<AreaEntity> findByParentSN(String ByParentSN);

    /**
     * 保存行政区域信息
     *
     * @param model 行政区域表单信息
     * @param sn    行政区域信息原有编号
     * @return 执行结果-受影响行数-Integer
     * @throws Exception 保存异常
     */
    Integer saveArea(Map<String, Object> model, String sn) throws Exception;

    /**
     * 根据行政区域编号删除行政区域信息
     *
     * @param sn 行政区域编号
     * @return 影响行数
     */
    Integer delete(String[] sn);
}